package com.ruoyi.biz.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 激活码对象 biz_code
 * 
 * @author jason
 * @date 2025-10-31
 */
public class BizCode extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 激活码id */
    private Long id;

    /** 激活码 */
    @Excel(name = "激活码")
    private String code;

    /** 激活码状态（0未激活/1已激活/2已过期） */
    @Excel(name = "激活码状态", readConverterExp = "0=未激活/1已激活/2已过期")
    private String status;

    /** 是否上传发卡平台（0未上传/1已上传） */
    @Excel(name = "是否上传发卡平台", readConverterExp = "0=未上传/1已上传")
    private String isUp;

    /** 客户端唯一标识 */
    @Excel(name = "客户端唯一标识")
    private String clientId;

    /** 上次解绑时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "上次解绑时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastUnbindTime;

    /** 激活时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "激活时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date activeTime;

    /** 过期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expireTime;

    /** 激活码类型: 1-月卡,2-季卡,3-年卡,0-永久 */
    private Integer type;

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setCode(String code) 
    {
        this.code = code;
    }

    public String getCode() 
    {
        return code;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setIsUp(String isUp) 
    {
        this.isUp = isUp;
    }

    public String getIsUp() 
    {
        return isUp;
    }

    public void setClientId(String clientId) 
    {
        this.clientId = clientId;
    }

    public String getClientId() 
    {
        return clientId;
    }

    public void setLastUnbindTime(Date lastUnbindTime) 
    {
        this.lastUnbindTime = lastUnbindTime;
    }

    public Date getLastUnbindTime() 
    {
        return lastUnbindTime;
    }

    public void setActiveTime(Date activeTime) 
    {
        this.activeTime = activeTime;
    }

    public Date getActiveTime() 
    {
        return activeTime;
    }

    public void setExpireTime(Date expireTime) 
    {
        this.expireTime = expireTime;
    }

    public Date getExpireTime() 
    {
        return expireTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("code", getCode())
            .append("status", getStatus())
            .append("isUp", getIsUp())
            .append("clientId", getClientId())
            .append("lastUnbindTime", getLastUnbindTime())
            .append("activeTime", getActiveTime())
            .append("expireTime", getExpireTime())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
